

public class Book {
    private String title;
    private int pages;

    public Book(String title, int pages) {
	setTitle(title);
	setPages(pages);
    }

    public void setTitle(String title) {
	if (title == null)
	    throw new IllegalArgumentException("null title");
	this.title = title;
    }

    public String getTitle() {
	return title;
    }

    public void setPages(int pages) {
	if (pages < 0)
	    throw new IllegalArgumentException("negative pages");
	this.pages = pages;
    }

    public int getPages() {
	return pages;
    }

    public String toString() {
	return "Book: title: " + title + " pages: " + pages;
    }

    public boolean equals (Object rhs) {
	if (rhs instanceof Book) {
	    Book b = (Book)rhs;
	    return title.equals(b.title) && pages == b.pages;
	}
	return false;
    }

    public static void main (String[] args) {
	Book javaProgLang = new Book("The Java Programming Language", 333);
	System.out.println(javaProgLang);
	Book mobyDick = new Book("Moby Dick", -2048);
	System.out.println(mobyDick);
	Book badBook = new Book(null, 256);
	System.out.println(badBook);
    }
}
